home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 2098 / 2098.xpi / chrome / updatenotifier.jar / content / options.js < prev    next >
Text File  |  2009-07-05  |  7KB  |  163 lines

  1. // Update Notifier
  2. // By Todd Long <longfocus@gmail.com>
  3. // http://www.longfocus.com/firefox/updatenotifier/
  4.  
  5. const HOUR_INTERVALS = [6, 12, 24, 48];
  6. const HOUR_INTERVAL_DEFAULT = 24;
  7.  
  8. var UN_gOptions = {
  9.   _interval: 86400,
  10.   
  11.   load: function()
  12.   {
  13.     // Load strings
  14.     this._loadStrings();
  15.     
  16.     // Load preferences
  17.     this._loadPrefs();
  18.   },
  19.   
  20.   _loadStrings: function()
  21.   {
  22.     UN_setEBIA("un-options-header-description", "value", UN_getMyVersion());
  23.     
  24.     // Check for updates at startup
  25.     UN_setEBIA("un-options-general-startup-check", "label",
  26.       UN_getBundleFString("options-check-startup", [UN_getPlatform()]));
  27.     
  28.     // Auto restart when updates install
  29.     UN_setEBIA("un-options-general-auto-restart", "label",
  30.       UN_getBundleFString("options-auto-restart", [UN_getPlatform()]));
  31.     
  32.     // Restart prompt
  33.     UN_setEBIA("un-options-general-restart-prompt", "label",
  34.       UN_getBundleFString("options-restart", [UN_getPlatform()]));
  35.     
  36.     // Interval hours
  37.     UN_setEBIA("un-options-notifications-set-interval", "label",
  38.       UN_getBundleFString("options-set-interval", [UN_getPlatform()]));
  39.     
  40.     var elem = UN_getEBI("un-options-notifications-interval-hours");
  41.     
  42.     while (elem.hasChildNodes())
  43.       elem.removeChild(elem.lastChild);
  44.     
  45.     for (var i = 0; i < HOUR_INTERVALS.length; i++) {
  46.       var item = document.createElement("menuitem");
  47.       var value = HOUR_INTERVALS[i] + " " + UN_getBundleString("options-hours");
  48.       
  49.       if (HOUR_INTERVALS[i] == HOUR_INTERVAL_DEFAULT) {
  50.         value += " (" + UN_getBundleString("options-default") + ")";
  51.         item.setAttribute("selected", true);
  52.       }
  53.       
  54.       item.setAttribute("label", value);
  55.       elem.appendChild(item);
  56.     }
  57.   },
  58.   
  59.   _loadPrefs: function()
  60.   {
  61.     UN_getEBI("un-options-general-startup-check").checked = UN_getBoolPref("startup.check");
  62.     UN_getEBI("un-options-general-auto-install").checked = UN_getBoolPref("auto.install");
  63.     UN_getEBI("un-options-general-auto-restart").checked = UN_getBoolPref("auto.restart");
  64.     UN_getEBI("un-options-general-restart-prompt").checked = UN_getBoolPref("restart.prompt");
  65.     UN_getEBI("un-options-toolbar-icon-display").checked = UN_getBoolPref("icon.always-display");
  66.     UN_getEBI("un-options-toolbar-statusbar").checked = UN_getBoolPref("statusbar");
  67.     UN_getEBI("un-options-toolbar-statusbar-radiogroup").selectedIndex = (UN_getBoolPref("statusbar.always-last") ? 0 : 1);
  68.     UN_getEBI("un-options-toolbar-statusbar-position-textbox").value = UN_getIntPref("statusbar.position");
  69.     UN_getEBI("un-options-notifications-set-interval").checked = UN_getBoolPref("check.interval");
  70.     UN_getEBI("un-options-notifications-alerts-display").checked = UN_getBoolPref("alerts");
  71.     
  72.     // Update interval
  73.     this._interval = UN_CC["@mozilla.org/preferences-service;1"]
  74.                        .getService(UN_CI.nsIPrefBranch)
  75.                        .getIntPref("extensions.update.interval");
  76.     
  77.     var index = HOUR_INTERVALS.indexOf(this._interval / 3600);
  78.     
  79.     if (index == -1)
  80.       index = HOUR_INTERVALS.indexOf(HOUR_INTERVAL_DEFAULT);
  81.     
  82.     UN_getEBI("un-options-notifications-interval-menulist").selectedIndex = index;
  83.     
  84.     // Initialize fields
  85.     this.onAction(null);
  86.   },
  87.   
  88.   _savePrefs: function()
  89.   {
  90.     UN_setBoolPref("startup.check", UN_getEBI("un-options-general-startup-check").checked);
  91.     UN_setBoolPref("auto.install", UN_getEBI("un-options-general-auto-install").checked);
  92.     UN_setBoolPref("auto.restart", UN_getEBI("un-options-general-auto-restart").checked);
  93.     UN_setBoolPref("restart.prompt", UN_getEBI("un-options-general-restart-prompt").checked);
  94.     UN_setBoolPref("icon.always-display", UN_getEBI("un-options-toolbar-icon-display").checked);
  95.     UN_setBoolPref("statusbar", UN_getEBI("un-options-toolbar-statusbar").checked);
  96.     UN_setBoolPref("statusbar.always-last", UN_getEBI("un-options-toolbar-statusbar-always-last-radio").selected);
  97.     UN_setIntPref("statusbar.position", UN_getEBI("un-options-toolbar-statusbar-position-textbox").value);
  98.     UN_setBoolPref("check.interval", UN_getEBI("un-options-notifications-set-interval").checked);
  99.     UN_setBoolPref("alerts", UN_getEBI("un-options-notifications-alerts-display").checked);
  100.     
  101.     if (UN_getEBI("un-options-notifications-set-interval").checked)
  102.       this._interval = HOUR_INTERVALS[UN_getEBI("un-options-notifications-interval-menulist").selectedIndex] * 3600;
  103.     
  104.     UN_CC["@mozilla.org/preferences-service;1"]
  105.       .getService(UN_CI.nsIPrefBranch)
  106.       .setIntPref("extensions.update.interval", this._interval);
  107.   },
  108.   
  109.   onAction: function(aEvent)
  110.   {
  111.     // Statusbar
  112.     UN_getEBI("un-options-toolbar-statusbar-radiogroup")
  113.       .disabled = !UN_getEBI("un-options-toolbar-statusbar").checked;
  114.     
  115.     UN_getEBI("un-options-toolbar-statusbar-position-textbox")
  116.       .disabled = (!UN_getEBI("un-options-toolbar-statusbar-position-radio").selected || !UN_getEBI("un-options-toolbar-statusbar").checked);
  117.     
  118.     UN_getEBI("un-options-toolbar-statusbar-position-range")
  119.       .hidden = (!UN_getEBI("un-options-toolbar-statusbar-position-radio").selected || !UN_getEBI("un-options-toolbar-statusbar").checked);
  120.     
  121.     if (UN_getStatusbarPanels())
  122.       UN_getEBI("un-options-toolbar-statusbar-position-range")
  123.         .value = "0 - " + UN_getStatusbarPanels();
  124.     
  125.     // Alerts
  126.     UN_getEBI("un-options-notifications-interval-label")
  127.       .disabled = !UN_getEBI("un-options-notifications-set-interval").checked;
  128.     
  129.     UN_getEBI("un-options-notifications-interval-menulist")
  130.       .disabled = !UN_getEBI("un-options-notifications-set-interval").checked;
  131.   },
  132.   
  133.   loadDefaults: function()
  134.   {
  135.     // Confirm default change in values
  136.     if (UN_confirm(UN_getBundleString("options-load-defaults")) == true)
  137.     {
  138.       // Set default preferences
  139.       UN_setBoolPref("alerts", true);
  140.       UN_setBoolPref("auto.install", false);
  141.       UN_setBoolPref("auto.restart", false);
  142.       UN_setBoolPref("check.interval", true);
  143.       UN_setBoolPref("icon.always-display", true);
  144.       UN_setBoolPref("restart.prompt", true);
  145.       UN_setBoolPref("startup.check", false);
  146.       UN_setBoolPref("statusbar", false);
  147.       UN_setBoolPref("statusbar.always-last", true);
  148.       UN_setIntPref("statusbar.position", 0);
  149.       
  150.       // Load preferences
  151.       this._loadPrefs();
  152.     }
  153.   },
  154.   
  155.   buttonOK: function()
  156.   {
  157.     // Save preferences
  158.     this._savePrefs();
  159.     
  160.     // Closes the window
  161.     window.close();
  162.   }
  163. }